home *** CD-ROM | disk | FTP | other *** search
/ WINMX Assorted Textfiles / Ebooks.tar / Text - Mathematics - Numerical Mathematics and Computing (F).zip / triqnt.f < prev    next >
Text File  |  2002-06-11  |  2KB  |  87 lines

  1. C
  2. C PAGE 233-236: NUMERICAL MATHEMATICS AND COMPUTING, CHENEY/KINCAID, 1985
  3. C
  4. C FILE: TRIQNT.FOR
  5. C
  6. C SOLVES TRIDIAGONAL & PENTADIAGONAL LINEAR SYSTEMS (TRI,PENTA)
  7. C
  8.       DIMENSION E(10),A(10),D(10),C(10),F(10),B(10),X(10) 
  9.       N = 10      
  10.       DO 2 I=1,N  
  11.       E(I) = 0.25 
  12.       A(I) = 0.25
  13.       C(I) = 0.25
  14.       F(I) = 0.25 
  15.       D(I) = 1.0   
  16. 2     B(I) = 2.0   
  17.       B(1) = 1.5
  18.       B(N) = 1.5     
  19.       B(2) = 1.75
  20.       B(N-1) = 1.75  
  21. C       
  22.       CALL PENTA(N,E,A,D,C,F,B,X)     
  23. C       
  24.       PRINT 10,X  
  25. C       
  26.       DO 20 I=1,N 
  27.       D(I) =2.    
  28.       A(I) = 0.5
  29.       C(I) = 0.5      
  30. 20    B(I) = 3.0   
  31.       B(1) = 2.5
  32.       B(N) = 2.5     
  33. C       
  34.       CALL TRI(N,A,D,C,B,X) 
  35. C       
  36.       PRINT 10,X  
  37. C       
  38.       DO 25 I=1,N 
  39.       D(I) = 2.0    
  40.       C(I) = 0.5   
  41. 25    B(I) = 3.0   
  42.       B(1) = 2.5
  43.       B(N) = 2.5     
  44. C       
  45.       CALL TRI(N,C,D,C,B,X) 
  46. C       
  47.       PRINT 10,X  
  48.       STOP
  49. 10    FORMAT(5X,3E22.14)    
  50.       END 
  51.   
  52.       SUBROUTINE TRI(N,A,D,C,B,X)     
  53.       DIMENSION  A(N),D(N),C(N),B(N),X(N) 
  54.       DO 2 I = 2,N
  55.         XMULT = A(I-1)/D(I-1) 
  56.         D(I) = D(I) - XMULT*C(I-1)    
  57.         B(I) = B(I) - XMULT*B(I-1)    
  58.    2  CONTINUE    
  59.       X(N) = B(N)/D(N)      
  60.       DO 3 I = N-1,1,-1     
  61.         X(I) = (B(I) - C(I)*X(I+1))/D(I)
  62.    3  CONTINUE    
  63.       RETURN      
  64.       END 
  65.   
  66.       SUBROUTINE PENTA(N,E,A,D,C,F,B,X) 
  67.       DIMENSION  E(N),A(N),D(N),C(N),F(N),B(N),X(N) 
  68.       DO 2 I = 2,N-1
  69.         XMULT = A(I-1)/D(I-1) 
  70.         D(I) = D(I) - XMULT*C(I-1)    
  71.         C(I) = C(I) - XMULT*F(I-1)    
  72.         B(I) = B(I) - XMULT*B(I-1)    
  73.         XMULT = E(I-1)/D(I-1) 
  74.         A(I) = A(I) - XMULT*C(I-1)  
  75.         D(I+1) = D(I+1) - XMULT*F(I-1)
  76.         B(I+1) = B(I+1) - XMULT*B(I-1)
  77.    2  CONTINUE    
  78.       XMULT = A(N-1)/D(N-1) 
  79.       D(N) = D(N) - XMULT*C(N-1)      
  80.       X(N) = (B(N) - XMULT*B(N-1))/D(N) 
  81.       X(N-1) = (B(N-1) - C(N-1)*X(N))/D(N-1)    
  82.       DO 3 I = N-2,1,-1     
  83.         X(I) = (B(I) - F(I)*X(I+2) - C(I)*X(I+1))/D(I)    
  84.    3  CONTINUE    
  85.       RETURN      
  86.       END 
  87.